Thema Datum  Von Nutzer Rating
Antwort
08.08.2019 15:34:08 Mirko
NotSolved
08.08.2019 16:26:04 Ulrich
NotSolved
08.08.2019 18:32:28 Mirko
NotSolved
08.08.2019 19:36:05 Trägheit
NotSolved
Rot Loop über Datein im Ordner => ein erster Anfang die zweite
08.08.2019 21:13:25 Ulrich
NotSolved
09.08.2019 08:55:08 Mirko
NotSolved
09.08.2019 11:29:13 Ulrich
NotSolved
09.08.2019 14:28:43 Mirko
NotSolved
10.08.2019 10:46:52 Ulrich
NotSolved
10.08.2019 16:19:58 Mirko
NotSolved
11.08.2019 14:08:30 Trägheit
NotSolved
12.08.2019 20:43:29 Mirko
NotSolved
13.08.2019 12:39:19 Mirko
Solved
13.08.2019 17:26:09 Trägheit
NotSolved
08.08.2019 16:33:43 Ulrich
NotSolved

Ansicht des Beitrags:
Von:
Ulrich
Datum:
08.08.2019 21:13:25
Views:
425
Rating: Antwort:
  Ja
Thema:
Loop über Datein im Ordner => ein erster Anfang die zweite

Hallo Mirko,

ok, ich habe das gerade nachgebaut:

  • Neue Datei erstellt
  • Alt+F11
  • Alt+E, M
  • in das frisch angelegte Modul den Code kopiert und die Datei gespeichert.
  • Dann habe ich im Verzeichnis c:\test\test\ Exceldateien angelegt (mit den Dateiendungen *.xlsx oder *.xls), die jeweils zwei Tabellenblätter haben. Vorsichtshalber habe ich in beiden Tabellenblättern die Zellen C17 und F7 mit irgendwas gefüllt. Diese Dateien habe ich geschlossen.
  • Dann habe ich das Makro ausgeführt.

Es ist folgendes passiert: die Dateien, die das Makro öffnet, blinkten kurz auf dem Bildschirm auf. Als Resultat hatte ich so viele neue Tabellenblätter, wie Exceldateien im Ordner c:\test\test\, die in den Zellen A5 und A6 die entsprechenden Daten hattten.

Was kann ich jetzt für dich tun???

Dass ich das so genau aufgeschrieben habe, soll kein Protokoll sein oder ähnliches, sondern dir zeigen wie wir vielleicht zu einem gleichen Ergebnis kommen um dann weiter zu deinem Ergebnis zu kommen.

 

 

Was könnte bei dir anders sein, als bei mir:

  • Der Code innerhalb der Schleife könnte gar nicht ausgeführt werden, weil im Verzeichnis keine Dateien, die auf .xls* enden, vorhanden sind (z.B. weil du den abschließenden Backslash vergessen hast)
  • Es könnte sein, dass zwar Werte übertragen werden, allerdings die Quellzellen leer sind und somit das Ergebnis gar nicht sichtbar wird (weil die Zielzelle nach dem Übertrag immer noch leer ist).
  • ....

 

Zunächst empfehle ich dir, den Code im Einzelschritt auszuführen (F8!) (oder im VBA-Editor unter im Menü unter "Debuggen"). Überlege dir vor dem Ausführen der nächsten (gelb hinterlegten) Codezeile, was du erwartest, das passiert. Geht der Code überhaupt in die Schleife?

Die Variable wbQuelle verweist auf die gerade frisch geöffnete Exceldatei. Du könntest dir mit der Codezeile

msgbox wbquelle.fullname

in einer MsgBox anzeigen lassen, welche Datei gerade geöffnet ist.

 

Du könntest mit der codezeile

debug.print fname

den aktuellen Inhalt in das Direktfenster schreiben lassen (das Direktfenster findest du im VBA-Editor mit Strg+G).

 

Du könntest - während der Code gerade im Haltemodus des Einzelschrittes ist - im Direktfenster folgendes eingeben:

?fname

und Enter drücken. Dann wird dir der aktuelle Inhalt der Variablen Fname in die nächste Codezeile geschrieben.

 

mit

?len(fname)

(im Diektfenster eingegeben und Enter gedrückt) kannst du dir die Länge der Zeichenkette, die in der Variablen Fname ist anzeigen lassen (wenn die Länge 0 ist, dann ist es schon mal kein gültiger Dateiname).

 

Du bemerkst: ich habe mich durch einen Test davon überzeugt, dass der Code funktioniert. Jetzt liegt es an dir, genauer nachzuforschen und/oder präziesere/konkretere Fragen zu stellen, damit ich dir helfen kann. Ich habe mich jetzt gerade mehr als 30 Minuten damit beschäftigt, das zu testen und diesen Text zu schreiben für einen Code, der meiner Meinung genau das macht, was du beschrieben hast, das er tun soll. Da stimmt dann einfach langsam das Verhältnis nicht mehr. In nahezu jeder Stadtbibliothek gibt es Bücher über VBA und im Netz findest du auch viel. Erarbeite dir, wie du einen solchen Code debuggen kannst und / oder stelle mir konkrete Fragen.

Eine Frage könnte sein: Ich verstehe nicht, was in der Zeile ... passiert, die Hilfe zur Dir()-Funktion habe ich gelesen, und verstehe sie so ....., doch wieso rufst du Dir() ohne Parameter auf? Oder ähnliches.

Es ist nicht ungewöhnlich, wenn du als Anfänger nach nur drei Stunden einen solchen Code nicht komplett nachvollziehen kannst. Ich habe mir zum erlernen von VBA kleinere und leichtere Aufgaben gestellt (zwei Zahlen addieren, meinen Namen in eine Zelle schreiben lassen, ....)

 

Wenn das eine Frage sein soll:

"Liegt es daran, dass ich einen Ordner habe, in dem eine Excel-Datei und ein weiterer Ordner mit den Datein, die eingelesen werden sollen, ist."

Dann fehlen ihr zwei wesentliche Merkmale, die mich dazu bewegen würden, sie zu beantworten:

  1. Fragezeichen am Ende
  2. klare, leicht nachvollziehbare Fragestellung (wie sieht es genau aus, was ist wo, wie heißen die Verzeichnisse, ...)

 

Grüße, Ulrich


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
08.08.2019 15:34:08 Mirko
NotSolved
08.08.2019 16:26:04 Ulrich
NotSolved
08.08.2019 18:32:28 Mirko
NotSolved
08.08.2019 19:36:05 Trägheit
NotSolved
Rot Loop über Datein im Ordner => ein erster Anfang die zweite
08.08.2019 21:13:25 Ulrich
NotSolved
09.08.2019 08:55:08 Mirko
NotSolved
09.08.2019 11:29:13 Ulrich
NotSolved
09.08.2019 14:28:43 Mirko
NotSolved
10.08.2019 10:46:52 Ulrich
NotSolved
10.08.2019 16:19:58 Mirko
NotSolved
11.08.2019 14:08:30 Trägheit
NotSolved
12.08.2019 20:43:29 Mirko
NotSolved
13.08.2019 12:39:19 Mirko
Solved
13.08.2019 17:26:09 Trägheit
NotSolved
08.08.2019 16:33:43 Ulrich
NotSolved